import copy

a = [1, 2, 3]
b = [11, 22, 33]
c = [a, b]
d = c
# 普通赋值，指向同一空间
print(id(c))
print(id(d))

# 浅拷贝，指向不同空间
d = copy.copy(c)
print(id(c))
print(id(d))

# 不会拷贝对象内部的子对象
print(id(a))
print(id(c[0]))
print(id(d[0]))

# 不可变类型进行浅拷贝不会给拷贝的对象开辟新的内存空间，只是拷贝了这个对象的引用
a = (1, 2, 3)
b = (11, 22, 33)
c = (a, b)
# 浅拷贝效果与普通赋值一样
d = c
e = copy.copy(c)
print(id(c))
print(id(d))
print(id(e))
